# pmim-ibus 安装

需要 `flatpak`: <https://flatpak.org/setup/>

国内 flathub 镜像: <https://mirror.sjtu.edu.cn/docs/flathub>

```sh
> flatpak install flathub io.github.fm_elpac.pmim_ibus
```

安装之后的配置如下:

---

目录:

- 1 数据库

- 2 配置 ibus (librush)
  - 2.1 适用于大部分 GNU/Linux 发行版本 (手动配置)
  - 2.2 适用于 ArchLinux (AUR)
  - 2.3 适用于 Fedora 40/39 (RPM)

- 3 重启输入法

- 4 更新 (升级) 到最新版本

## 1 数据库

本输入法使用 2 个数据库: **内置数据库** (`pmim_sys.db`, 只读), 以及
**用户数据库** (`pmim_user.db`, 可读写). 用户数据库会自动创建,
存储一部分用户输入的数据 (用于学习功能). 内置数据库含有内置词库等数据,
需要下载并放在相应位置.

目前可选的数据库有: (4 + 1)

- 下载地址: <https://github.com/fm-elpac/pmim-data/releases>

  - `pmim_sys.db.zst` (约 3MB)

    含有 6 万个词 (很小) 的词库.

  - `pmim_sys-0.db.zst` (约 500KB)

    不含词库.

- 下载地址: <https://github.com/fm-elpac/pmim-data-imewlconverter/releases>

  - `pmim_sys.db.zip` (约 2.9MB)

    含有 8 万个词. 数据来源: <https://github.com/studyzy/imewlconverter>

    `imewlconverter/参考/8万精准超小词库.txt`

- 下载地址: <https://github.com/fm-elpac/pmim-data-thuocl/releases>

  - `pmim_sys.db.zip` (约 7MB)

    含有 10 万个词. 数据来源: 清华大学开放中文词库 (THUOCL)
    <http://thuocl.thunlp.org/>

- 下载地址: <https://github.com/fm-elpac/pmim-data-greatdict/releases>

  - `pmim_sys.db.zip` (约 38MB)

    含有 332 万个词. 数据来源: <https://github.com/tumashu/pyim-greatdict>

本拼音输入法是完全开源的, 包括数据库格式以及制作数据库的方法.
你也可以制作并使用自己的数据库哟 ~

自己制作词库可以参考这个工具: <https://github.com/studyzy/imewlconverter>

> 深蓝词库转换 一款开源免费的输入法词库转换程序

如果发现别的好的开源词库, 欢迎提
[issue](https://github.com/fm-elpac/pmim-ibus/issues). 如果合适,
窝会将其制作成数据库方便直接下载使用. 由于版权问题, 如果原数据 (词库)
不是开源的, 这里无法直接提供, 可以考虑自己制作.

由于本输入法的内置数据库和用户数据库是分离的, 并且内置数据库是 **只读** 的,
所以可以随意替换内置数据库, 不会造成用户数据的丢失.

---

**解压** 之后, 将内置数据库文件 `pmim_sys.db` (注意重命名) 放在
`~/.var/app/io.github.fm_elpac.pmim_ibus/config/pmim`, 比如:

```sh
> ls -l ~/.var/app/io.github.fm_elpac.pmim_ibus/config/pmim/pmim_sys.db
-rw-r--r-- 1 s2 s2 17551360  3月11日 00:37 /home/s2/.var/app/io.github.fm_elpac.pmim_ibus/config/pmim/pmim_sys.db
```

## 2 配置 ibus (librush)

艾刷 (librush) 是 ibus 输入法框架的接口模块, 目前需要单独安装.

### 2.1 适用于大部分 GNU/Linux 发行版本 (手动配置)

下载编译好的二进制程序 (`librush_release_x86_64-unknown-linux-gnu.tar.zst`):
<https://github.com/fm-elpac/librush/releases>

**解压** 之后, 把 `ibrus` 文件随便放在一个位置 (记得添加可执行权限
`chmod +x ibrus`).

然后在系统中添加一个配置文件 `/usr/share/ibus/component/pmim_ibrus.xml`,
文件内容如下:

```xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- /usr/share/ibus/component/pmim_ibrus.xml -->
<component>
  <name>org.fm_elpac.pmim</name>
  <description>PMIM (ibus)</description>
  <exec>/path/to/ibrus --flatpak</exec>
  <version>0.1.0</version>
  <author>secext2022</author>
  <license>GPL</license>
  <homepage>https://github.com/fm-elpac/pmim-ibus</homepage>
  <textdomain>pmim-ibus</textdomain>

  <engines>
    <engine>
      <name>pmim</name>
      <language>zh_CN</language>
      <license>GPL</license>
      <author>secext2022</author>
      <layout>default</layout>
      <longname>胖喵拼音</longname>
      <description>胖喵拼音输入法 (ibus)</description>
      <rank>99</rank>
      <symbol>喵</symbol>
      <icon_prop_key>InputMode</icon_prop_key>
      <textdomain>pmim-ibus</textdomain>
    </engine>
  </engines>
</component>
```

注意其中 `<exec>/path/to/ibrus --flatpak</exec>` 替换为 `ibrus` 文件的路径.

### 2.2 适用于 ArchLinux (AUR)

<https://aur.archlinux.org/packages/librush-bin>

直接从 AUR 安装软件包 `librush-bin` 即可, 无需手动配置.

### 2.3 适用于 Fedora 40/39 (RPM)

下载 RPM 软件包 `ibrus-0.1.0a3-1.fc39.x86_64.rpm`:
<https://github.com/fm-elpac/librush/releases> 并安装.

适用于普通的 Fedora 版本: <https://fedoraproject.org/workstation/>

---

也适用于 `Atomic Desktops` 系列 (基于 `rpm-ostree`), 比如 `Silverblue` 或
`Kinoite`: <https://fedoraproject.org/atomic-desktops/silverblue/>
<https://fedoraproject.org/atomic-desktops/kinoite/>

安装命令:

```sh
sudo rpm-ostree install ibrus-0.1.0a3-1.fc39.x86_64.rpm
```

然后重启.

参考文档:
<https://docs.fedoraproject.org/en-US/fedora-kinoite/getting-started/#package-layering>

## 3 重启输入法

如果遇到问题, 需要重启输入法, 可以使用以下命令 (适用于 GNOME):

```sh
flatpak kill io.github.fm_elpac.pmim_ibus

systemctl --user restart org.freedesktop.IBus.session.GNOME
```

## 4 更新 (升级) 到最新版本

- 主应用升级 (flatpak):

  ```sh
  > flatpak update
  ```

- `librush` 和数据库可能需要手动升级 (重新安装).

TODO
